package com.leetcode.code;

/**
 * 给定一个大小为 n 的数组，找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
 * <p>
 * 你可以假设数组是非空的，并且给定的数组总是存在众数。
 * <p>
 * 示例 1:
 * <p>
 * 输入: [3,2,3]
 * 输出: 3
 * 示例 2:
 * <p>
 * 输入: [2,2,1,1,1,2,2]
 * 输出: 2
 */

public class LeetCode0169Java {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println("结果是：" + solution.majorityElement(new int[] { 2, 2, 1, 1, 1, 3, 2, 2 }));
    }

    static class Solution {
        public int majorityElement(int[] nums) {

            int maxCountNum = 0;
            int numValue = 0;
            for (int num : nums) {
                if (maxCountNum == 0) {
                    numValue = num;
                }

                if (numValue == num) {
                    maxCountNum++;
                } else {
                    maxCountNum--;
                }
            }
            return numValue;
        }
    }
}
